Analysis date: 2022-08-08
library(plyr)
library(gtools)
library(pheatmap)
library(Matrix)
library(Hmisc)
library(ggpubr)
library(readxl)
library(DESeq2)
library(tidyverse)
library(limma)
library(apeglm)
library(biomartr)
library(biomaRt)
library(MultiAssayExperiment)
library(gplots)
library(grid)
library(cowplot)
load("data/multiomics_MAE.RData")
source("data/Figure_layouts.R")
## Warning: `guides(<scale> = FALSE)` is deprecated. Please use `guides(<scale> = "none")` instead.
## `guides(<scale> = FALSE)` is deprecated. Please use `guides(<scale> = "none")` instead.
KEGG <- read.table("data/c2.cp.kegg.v7.0.symbols.gmt", sep = "/")
KEGG <- KEGG %>% as_tibble() %>% mutate(pathway = gsub("\thttp:", "", V1),
genes=V7)
BCAA_genes <- KEGG %>% filter(pathway == "KEGG_VALINE_LEUCINE_AND_ISOLEUCINE_DEGRADATION") %>% dplyr::select(genes) %>% unlist() %>% strsplit2("\t") %>% .[,-1]
proteasome_genes <- KEGG %>% filter(pathway == "KEGG_PROTEASOME") %>% dplyr::select(genes) %>% unlist() %>% strsplit2("\t") %>% .[,-1]
splice_genes <- KEGG %>% filter(pathway == "KEGG_SPLICEOSOME") %>% dplyr::select(genes) %>% unlist() %>% strsplit2("\t") %>% .[,-1]
BCR_genes <- KEGG %>% filter(pathway == "KEGG_B_CELL_RECEPTOR_SIGNALING_PATHWAY") %>% dplyr::select(genes) %>% unlist() %>% strsplit2("\t") %>% .[,-1]
change_chr_abber_brackets <- function(levels_alt){
levels_alt %>%
str_replace(., "del", "del(") %>% str_replace(., "gain", "gain(") %>%
str_replace(., "q", ")(q") %>% str_replace(., "p", ")(p") %>%
str_replace(., "\\)\\(prim", "prim") %>%
str_replace(., "11\\)\\(q", "11)(q22.3)") %>%
str_replace(., "p13", "p13)") %>% str_replace(., "q14", "q14)") %>%
str_replace(., "q24", "q24)")
}
prot_few_nas <- multiomics_MAE[["proteomics"]] %>% is.na() %>% rowSums()
prot_few_nas <- prot_few_nas[ prot_few_nas == 0 ] %>% names()
#ensembl=useMart("ensembl")
#ensembl = useDataset("hsapiens_gene_ensembl",mart=ensembl)
#genemap <- getBM(attributes = c("ensembl_gene_id", "hgnc_symbol", "start_position", "end_position" , "chromosome_name", "description"),
# filters = "hgnc_symbol", values = (prot_few_nas %>% unique), mart = ensembl)
#genemap <- genemap %>% as_tibble() %>% mutate(mean_position=(start_position + end_position)/2)
load("/Volumes/sd17b003/Sophie/Analysis/CLL_Proteomics/R_objects/ensembl_proteins_location.RData")
metadata(multiomics_MAE)$gene_symbol_mapping <- left_join(metadata(multiomics_MAE)$gene_symbol_mapping, genemap)
proteomics_tbl_meta_biomart_chrab <- wideFormat(multiomics_MAE[,,"chrom_abber"]) %>% as_tibble()
## Warning: 'experiments' dropped; see 'metadata'
## Warning: 'ExperimentList' contains 'data.frame' or 'DataFrame',
## potential for errors with mixed data types
proteomics_tbl_meta_biomart_chrab <- mutate_if(proteomics_tbl_meta_biomart_chrab, is.numeric, as.logical)
proteomics_tbl_meta_biomart_chrab <- proteomics_tbl_meta_biomart_chrab %>% dplyr::select(primary,
colnames(proteomics_tbl_meta_biomart_chrab[, -1])[
apply(proteomics_tbl_meta_biomart_chrab[, -1] ,2, function(cl){ all(table(cl)>2) } )
] )
proteomics_tbl_meta_biomart_chrab <- proteomics_tbl_meta_biomart_chrab %>% dplyr::select(primary,
colnames(proteomics_tbl_meta_biomart_chrab[, -1])[
apply(proteomics_tbl_meta_biomart_chrab[, -1] ,2, function(cl){ length(table(cl))>1 } )
] )
proteomics_tbl_meta_biomart_SNP <- wideFormat(multiomics_MAE[,,"SNPs"]) %>% as_tibble()
## Warning: 'experiments' dropped; see 'metadata'
proteomics_tbl_meta_biomart_SNP <- mutate_if(proteomics_tbl_meta_biomart_SNP, is.numeric, as.logical)
proteomics_tbl_meta_biomart_SNP <- proteomics_tbl_meta_biomart_SNP %>% dplyr::select(primary,
colnames(proteomics_tbl_meta_biomart_SNP[, -1])[
apply(proteomics_tbl_meta_biomart_SNP[, -1] ,2, function(cl){ all(table(cl)>2) } )
] )
proteomics_tbl_meta_biomart_SNP <- proteomics_tbl_meta_biomart_SNP %>% dplyr::select(primary,
colnames(proteomics_tbl_meta_biomart_SNP[, -1])[
apply(proteomics_tbl_meta_biomart_SNP[, -1] ,2, function(cl){ length(table(cl))>1 } )
] )
proteomics_tbl_meta_biomart_health <- wideFormat(multiomics_MAE[,,"health_record_bin"]) %>% as_tibble() %>% dplyr::select(primary, health_record_bin_IGHV_mutated, health_record_bin_elderly_at_diagnosis, health_record_bin_treated)
## Warning: 'experiments' dropped; see 'metadata'
proteomics_tbl_meta_biomart_health <- mutate_if(proteomics_tbl_meta_biomart_health, is.numeric, as.logical)
proteomics_tbl_meta_biomart <- left_join(
left_join((
longFormat(multiomics_MAE[,,"proteomics"], colDataCols = c("trisomy12", "IGHV_mutated") ) %>%
as_tibble() %>%
#mutate(IGHV= if_else(IGHV %in% c("M", "U"), IGHV, "NA") )
mutate(IGHV=IGHV_mutated)
),
metadata(multiomics_MAE)$gene_symbol_mapping[c(2,3,5:7)],
by=c("rowname"="hgnc_symbol")),
proteomics_tbl_meta_biomart_chrab, by=c("primary"))
## Warning: 'experiments' dropped; see 'metadata'
proteomics_tbl_meta_biomart <- left_join( left_join(proteomics_tbl_meta_biomart,
proteomics_tbl_meta_biomart_SNP, by=c("primary")),
proteomics_tbl_meta_biomart_health, by=c("primary"))
drug_and_proteomics_prot <- longFormat(multiomics_MAE[,,c("proteomics")]) %>% as_tibble()
## Warning: 'experiments' dropped; see 'metadata'
drug_and_proteomics_drug <- longFormat(multiomics_MAE[,,c("drug_resp_mono")]) %>% as_tibble()
## Warning: 'experiments' dropped; see 'metadata'
## Warning: 'ExperimentList' contains 'data.frame' or 'DataFrame',
## potential for errors with mixed data types
drug_and_proteomics_drug <- drug_and_proteomics_drug %>% separate(rowname, into = c("Drug", "conc"), sep = "_") %>%
group_by(assay, primary, rowname=Drug, colname ) %>%
dplyr::summarise(value=mean(value, na.rm=TRUE)) %>% ungroup()
drug_and_proteomics <- bind_rows(drug_and_proteomics_prot, drug_and_proteomics_drug)
pats_drug_and_prot <- drug_and_proteomics %>% group_by(primary) %>% dplyr::summarise(nassay=length(unique(assay))) %>% dplyr::filter(nassay==2) %>% .$primary
drug_and_proteomics <- drug_and_proteomics %>% dplyr::filter(primary %in% pats_drug_and_prot)
all_prot <- drug_and_proteomics %>% dplyr::filter(assay=="proteomics", rowname %in% prot_few_nas) %>% .$rowname %>% unique()
all_drugs <- drug_and_proteomics %>% dplyr::filter(assay=="drug_resp_mono") %>% .$rowname %>% unique()
pat_overlap_prot_RNA <- colnames(intersectColumns(multiomics_MAE[,,c("proteomics", "RNAseq_norm")]))[["proteomics"]]
## Warning: 'experiments' dropped; see 'metadata'
## Warning: 'ExperimentList' contains 'data.frame' or 'DataFrame',
## potential for errors with mixed data types
## Warning: 'ExperimentList' contains 'data.frame' or 'DataFrame',
## potential for errors with mixed data types
proteomics_tbl_meta_biomart
experiments(multiomics_MAE)
## ExperimentList class object of length 8:
## [1] SNPs: matrix with 8 rows and 80 columns
## [2] drug_resp_mono: data.frame with 130 rows and 81 columns
## [3] chrom_abber: data.frame with 5 rows and 81 columns
## [4] health_record_bin: matrix with 6 rows and 81 columns
## [5] health_record_scaled: matrix with 6 rows and 81 columns
## [6] proteomics: matrix with 7311 rows and 68 columns
## [7] RNAseq_full: DESeqDataSet with 63214 rows and 59 columns
## [8] RNAseq_norm: data.frame with 9273 rows and 59 columns
as_tibble(colData(multiomics_MAE))
multiomics_MAE
## A MultiAssayExperiment object of 8 listed
## experiments with user-defined names and respective classes.
## Containing an ExperimentList class object of length 8:
## [1] SNPs: matrix with 8 rows and 80 columns
## [2] drug_resp_mono: data.frame with 130 rows and 81 columns
## [3] chrom_abber: data.frame with 5 rows and 81 columns
## [4] health_record_bin: matrix with 6 rows and 81 columns
## [5] health_record_scaled: matrix with 6 rows and 81 columns
## [6] proteomics: matrix with 7311 rows and 68 columns
## [7] RNAseq_full: DESeqDataSet with 63214 rows and 59 columns
## [8] RNAseq_norm: data.frame with 9273 rows and 59 columns
## Functionality:
## experiments() - obtain the ExperimentList instance
## colData() - the primary/phenotype DataFrame
## sampleMap() - the sample coordination DataFrame
## `$`, `[`, `[[` - extract colData columns, subset, or experiment
## *Format() - convert into a long or wide DataFrame
## assays() - convert ExperimentList to a SimpleList of matrices
## exportClass() - save data to flat files
assay(multiomics_MAE[prot_few_nas , ,"proteomics"])[1:5,1:5]
## Warning: 'experiments' dropped; see 'metadata'
## harmonizing input:
## removing 522 sampleMap rows not in names(experiments)
## removing 13 colData rownames not in sampleMap 'primary'
## CLL_1 CLL_4 CLL_8 CLL_20 CLL_24
## A2M -0.23106599 -0.123775317 -0.20324611 -0.11422224 0.05369119
## AAAS -0.04446032 -0.003929938 -0.10881390 0.21728422 -0.24019198
## AACS 0.18091637 -0.469318906 0.01926965 0.46120353 0.27485862
## AAGAB 0.11577450 0.129642752 0.10785538 -0.06247763 0.25647801
## AAMDC 0.21443028 -0.003820597 -0.09936349 0.62120261 -0.26938714
dim(assay(multiomics_MAE[prot_few_nas , ,"proteomics"]))
## Warning: 'experiments' dropped; see 'metadata'
## harmonizing input:
## removing 522 sampleMap rows not in names(experiments)
## removing 13 colData rownames not in sampleMap 'primary'
## [1] 7311 68
print(paste( round( (!(assay(multiomics_MAE[,,"proteomics"]) %>% is.na() ) ) %>% colSums() %>% mean) ,
"proteins per sample were detected on average in proteomics data"))
## Warning: 'experiments' dropped; see 'metadata'
## [1] "7311 proteins per sample were detected on average in proteomics data"
print(paste( round( (!(assay(multiomics_MAE[,,"RNAseq_full"]) %>% is.na() ) ) %>%
colSums() %>% mean) ,
"transcipts per sample were detected on average in RNASeq data"))
## Warning: 'experiments' dropped; see 'metadata'
## [1] "63214 transcipts per sample were detected on average in RNASeq data"
if(!any(is.na(assay(multiomics_MAE[,,"RNAseq_full"])))){
print("No NAs in RNASeq dataset")
}
## Warning: 'experiments' dropped; see 'metadata'
## [1] "No NAs in RNASeq dataset"
print( paste( ( (assay(multiomics_MAE[,,"RNAseq_full"]) %>% rowMeans() ) > 0 ) %>% sum , "different transcripts were detected"))
## Warning: 'experiments' dropped; see 'metadata'
## [1] "40083 different transcripts were detected"
print(
paste(
multiomics_MAE@metadata$gene_symbol_mapping %>%
filter(ensembl_gene_id %in%
names((assay(multiomics_MAE[,,"RNAseq_full"]) %>% rowMeans() ) > 0 ) ) %>%
dplyr::select(hgnc_symbol) %>% unique %>%
filter(hgnc_symbol != "") %>%
nrow,
"transcripts with unique hgnc symbols"))
## Warning: 'experiments' dropped; see 'metadata'
## [1] "35402 transcripts with unique hgnc symbols"
print( paste(
(multiomics_MAE@metadata$gene_symbol_mapping %>%
filter(ensembl_gene_id %in%
names((assay(multiomics_MAE[,,"RNAseq_full"]) %>% rowMeans() ) > 0 ) ) %>%
dplyr::select(hgnc_symbol) %>% unique %>%
filter(hgnc_symbol != "") %>% .$hgnc_symbol %in%
rownames(multiomics_MAE@ExperimentList$proteomics) ) %>% sum,
"matching proteins and transcripts detected"))
## Warning: 'experiments' dropped; see 'metadata'
## [1] "7199 matching proteins and transcripts detected"
protpats <- multiomics_MAE@sampleMap %>% as_tibble() %>% filter(assay=="proteomics") %>% .$primary %>% unique
message("Available datasets for proteomics patients:")
multiomics_MAE[,protpats,]@sampleMap %>% .$assay %>% table
## Warning: 'ExperimentList' contains 'data.frame' or 'DataFrame',
## potential for errors with mixed data types
## Warning: 'ExperimentList' contains 'data.frame' or 'DataFrame',
## potential for errors with mixed data types
## Warning: 'ExperimentList' contains 'data.frame' or 'DataFrame',
## potential for errors with mixed data types
## .
## SNPs drug_resp_mono chrom_abber
## 67 68 68
## health_record_bin health_record_scaled proteomics
## 68 68 68
## RNAseq_full RNAseq_norm
## 59 59
pat_with_prot <- sampleMap(multiomics_MAE) %>% as_tibble() %>% filter(assay == "proteomics") %>% .$primary
multiomics_MAE_prot <- multiomics_MAE[,pat_with_prot,]
order_oncoplot <- longFormat(multiomics_MAE_prot[,,c("SNPs","chrom_abber")]) %>%
as_tibble() %>%
group_by(rowname) %>%
dplyr::summarise(total=sum(value, na.rm = TRUE)) %>%
arrange(total ) %>%
.$rowname %>% change_chr_abber_brackets
tmp <- wideFormat(multiomics_MAE_prot[,,c("SNPs","chrom_abber")]) %>% as_tibble()
colnames(tmp) <- colnames(tmp) %>% gsub("SNPs_|chrom_abber_", "",.) %>%
change_chr_abber_brackets
for(l in 1:length(order_oncoplot)){
tmp <- tmp %>% arrange_( as.name(order_oncoplot[l] ) )
}
onco_center <-
longFormat(multiomics_MAE_prot[,,c("SNPs","chrom_abber")]) %>%
as_tibble() %>%
mutate(alteration= if_else(value==1, assay, as.character(value))) %>%
mutate(rowname = change_chr_abber_brackets(rowname) ) %>%
ggplot(aes(primary, rowname, fill=alteration)) +
geom_tile(color="black") +
scale_fill_manual(values=c("white", "orange1", "#ca0020", "grey"), labels=c("wt", "CNV", "SNV", "NA" ), na.translate=FALSE) +
scale_y_discrete(limits=order_oncoplot) +
scale_x_discrete(limits=rev(tmp$primary)) +
xlab("Patients") +
theme(panel.background = element_rect(fill= "darkgrey"), panel.grid = element_blank(),
axis.text.x = element_blank(),
#axis.title = element_blank(),
axis.title.y = element_blank(),
axis.ticks.x = element_blank(),
legend.position = "bottom", legend.key.size = unit(10, "pt")) +
guides(fill=guide_legend(title = NULL ))
onco_right <-longFormat(multiomics_MAE_prot[,,c("SNPs","chrom_abber")]) %>%
as_tibble() %>%
mutate(rowname = change_chr_abber_brackets(rowname) ) %>%
ggplot(aes(rowname, value)) + geom_col(aes(fill=assay)) +
scale_x_discrete(limits=order_oncoplot) +
coord_flip()+
scale_fill_manual(values=c("orange1", "#ca0020")) +
theme(panel.background = element_rect(fill= "white"), panel.grid = element_blank(), axis.title = element_blank(),
axis.line.x = element_line(color="black"))
onco_right_perc <- longFormat(multiomics_MAE_prot[,,c("SNPs","chrom_abber")]) %>% as_tibble() %>%
group_by(rowname) %>%
dplyr::summarise(perc=round(sum(value, na.rm = TRUE)/ sum(!is.na(value)) , 2) ) %>%
mutate(rowname = change_chr_abber_brackets(rowname) ) %>%
ggplot(aes(rowname, 1, label=paste0(perc*100, "%") )) +
geom_text() + coord_flip() + theme_void() +
scale_x_discrete(limits=order_oncoplot)
onco_right_total <-
longFormat(multiomics_MAE_prot[,,c("SNPs","chrom_abber")]) %>% as_tibble() %>%
group_by(rowname) %>%
dplyr::summarise(total=sum(value, na.rm = TRUE )) %>%
mutate(rowname = change_chr_abber_brackets(rowname) ) %>%
ggplot(aes(rowname, 1, label=total)) +
geom_text() + coord_flip() + theme_void() +
scale_x_discrete(limits=order_oncoplot)
onco_top <-longFormat(multiomics_MAE_prot[,,c("SNPs","chrom_abber")]) %>%
as_tibble() %>%
mutate(rowname = change_chr_abber_brackets(rowname) ) %>%
ggplot(aes(primary, value)) + geom_col(aes(fill=assay)) +
scale_x_discrete(limits=rev(tmp$primary)) +
scale_fill_manual(values=c("orange1", "#ca0020")) +
theme(panel.background = element_rect(fill= "white"), panel.grid = element_blank(), axis.title = element_blank(),
axis.line.x = element_line(color="black"))
p1 <- insert_yaxis_grob(onco_center,get_panel(onco_right_total) , grid::unit(.2, "null"), position = "right")
p1.2<- insert_yaxis_grob(p1, get_panel(onco_right), grid::unit(.1, "null"), position = "right")
p1.3<- insert_yaxis_grob(p1.2, get_panel(onco_right_perc), grid::unit(.2, "null"), position = "right")
oncoplot <- insert_xaxis_grob(p1.3, onco_top, grid::unit(.2, "null"), position = "top")
ggdraw(oncoplot)
drs_sel <- metadata(multiomics_MAE)$drugs_functional_groups %>%
filter( !( grepl("DMSO", Drug) ) ) %>%
mutate(Pathways=if_else(Pathways=="Apoptosis", "Inducer/inhibitor of apoptosis", Pathways))
order_drugs <- drs_sel$Pathways %>% table() %>% as_tibble() %>% arrange(desc(n)) %>% .$.
drug_nrs <- drs_sel %>%
ggplot(aes(Pathways)) + geom_bar() +
pp_sra_noguides_tilted +
scale_x_discrete(limits=order_drugs)
drug_nrs
save(all_drugs,
BCAA_genes, proteasome_genes, splice_genes, BCR_genes,
drug_and_proteomics, drug_and_proteomics_drug,
multiomics_MAE,
pat_overlap_prot_RNA,
prot_few_nas,
proteomics_tbl_meta_biomart,
proteomics_tbl_meta_biomart_chrab,
proteomics_tbl_meta_biomart_health,
proteomics_tbl_meta_biomart_SNP,
file="data/CLL_Proteomics_Setup.RData")
save(oncoplot,
file = "RData_plots/CLL_Proteomics_Setup_Plots.RData")
sessionInfo()
## R version 4.1.3 (2022-03-10)
## Platform: x86_64-apple-darwin17.0 (64-bit)
## Running under: macOS Big Sur/Monterey 10.16
##
## Matrix products: default
## BLAS: /Library/Frameworks/R.framework/Versions/4.1/Resources/lib/libRblas.0.dylib
## LAPACK: /Library/Frameworks/R.framework/Versions/4.1/Resources/lib/libRlapack.dylib
##
## locale:
## [1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
##
## attached base packages:
## [1] grid stats4 stats graphics grDevices utils datasets
## [8] methods base
##
## other attached packages:
## [1] cowplot_1.1.1 gplots_3.1.3
## [3] MultiAssayExperiment_1.20.0 biomaRt_2.50.3
## [5] biomartr_1.0.2 apeglm_1.16.0
## [7] limma_3.50.3 forcats_0.5.1
## [9] stringr_1.4.0 dplyr_1.0.9
## [11] purrr_0.3.4 readr_2.1.2
## [13] tidyr_1.2.0 tibble_3.1.7
## [15] tidyverse_1.3.1 DESeq2_1.34.0
## [17] SummarizedExperiment_1.24.0 Biobase_2.54.0
## [19] MatrixGenerics_1.6.0 matrixStats_0.62.0
## [21] GenomicRanges_1.46.1 GenomeInfoDb_1.30.1
## [23] IRanges_2.28.0 S4Vectors_0.32.4
## [25] BiocGenerics_0.40.0 readxl_1.4.0
## [27] ggpubr_0.4.0 Hmisc_4.7-0
## [29] ggplot2_3.3.6 Formula_1.2-4
## [31] survival_3.3-1 lattice_0.20-45
## [33] Matrix_1.4-1 pheatmap_1.0.12
## [35] gtools_3.9.3 plyr_1.8.7
##
## loaded via a namespace (and not attached):
## [1] backports_1.4.1 BiocFileCache_2.2.1 splines_4.1.3
## [4] BiocParallel_1.28.3 digest_0.6.29 htmltools_0.5.2
## [7] fansi_1.0.3 magrittr_2.0.3 checkmate_2.1.0
## [10] memoise_2.0.1 cluster_2.1.3 tzdb_0.3.0
## [13] Biostrings_2.62.0 annotate_1.72.0 modelr_0.1.8
## [16] bdsmatrix_1.3-6 prettyunits_1.1.1 jpeg_0.1-9
## [19] colorspace_2.0-3 rappdirs_0.3.3 blob_1.2.3
## [22] rvest_1.0.2 haven_2.5.0 xfun_0.31
## [25] crayon_1.5.1 RCurl_1.98-1.7 jsonlite_1.8.0
## [28] genefilter_1.76.0 glue_1.6.2 gtable_0.3.0
## [31] zlibbioc_1.40.0 XVector_0.34.0 DelayedArray_0.20.0
## [34] car_3.1-0 abind_1.4-5 scales_1.2.0
## [37] mvtnorm_1.1-3 DBI_1.1.3 rstatix_0.7.0
## [40] Rcpp_1.0.9 progress_1.2.2 xtable_1.8-4
## [43] emdbook_1.3.12 htmlTable_2.4.1 foreign_0.8-82
## [46] bit_4.0.4 htmlwidgets_1.5.4 httr_1.4.3
## [49] RColorBrewer_1.1-3 ellipsis_0.3.2 farver_2.1.1
## [52] pkgconfig_2.0.3 XML_3.99-0.10 nnet_7.3-17
## [55] sass_0.4.1 dbplyr_2.2.1 deldir_1.0-6
## [58] locfit_1.5-9.6 utf8_1.2.2 labeling_0.4.2
## [61] tidyselect_1.1.2 rlang_1.0.4 AnnotationDbi_1.56.2
## [64] munsell_0.5.0 cellranger_1.1.0 tools_4.1.3
## [67] cachem_1.0.6 cli_3.3.0 generics_0.1.3
## [70] RSQLite_2.2.14 broom_1.0.0 evaluate_0.15
## [73] fastmap_1.1.0 yaml_2.3.5 knitr_1.39
## [76] bit64_4.0.5 fs_1.5.2 caTools_1.18.2
## [79] KEGGREST_1.34.0 xml2_1.3.3 compiler_4.1.3
## [82] rstudioapi_0.13 filelock_1.0.2 curl_4.3.2
## [85] png_0.1-7 ggsignif_0.6.3 reprex_2.0.1
## [88] geneplotter_1.72.0 bslib_0.3.1 stringi_1.7.8
## [91] highr_0.9 vctrs_0.4.1 pillar_1.7.0
## [94] lifecycle_1.0.1 jquerylib_0.1.4 data.table_1.14.2
## [97] bitops_1.0-7 R6_2.5.1 latticeExtra_0.6-30
## [100] KernSmooth_2.23-20 gridExtra_2.3 MASS_7.3-57
## [103] assertthat_0.2.1 withr_2.5.0 GenomeInfoDbData_1.2.7
## [106] parallel_4.1.3 hms_1.1.1 rpart_4.1.16
## [109] coda_0.19-4 rmarkdown_2.14 carData_3.0-5
## [112] bbmle_1.0.25 numDeriv_2016.8-1.1 lubridate_1.8.0
## [115] base64enc_0.1-3 interp_1.1-3